Field
The technology described herein relates to non-volatile storage.
Description of the Related Art
Semiconductor memory devices have become more popular for use in various electronic devices. For example, non-volatile semiconductor memory is used in cellular telephones, digital cameras, personal digital assistants, mobile computing devices, non-mobile computing devices and other devices. Electrical Erasable Programmable Read Only Memory (EEPROM) and flash memory are among the most popular non-volatile semiconductor memories.
Both EEPROM and flash memory utilize a floating gate that is positioned above and insulated from a channel region in a semiconductor substrate. The floating gate is positioned between source and drain regions. A control gate is provided over and insulated from the floating gate. The threshold voltage of the transistor is controlled by the amount of charge that is retained on the floating gate. That is, the minimum amount of voltage that must be applied to the control gate before the transistor is turned on to permit conduction between its source and drain is controlled by the level of charge on the floating gate.
When programming an EEPROM or flash memory device, typically a program voltage is applied to the control gate and the bit line is grounded. Electrons from the channel are injected into the floating gate. When electrons accumulate in the floating gate, the floating gate becomes negatively charged and the threshold voltage of the memory cell is raised so that the memory cell is in the programmed state.
Some EEPROM and flash memory devices have a floating gate that is used to store two ranges of charges and, therefore, the memory cell can be programmed/erased between two states, an erased state and a programmed state that correspond to data “1” and data “0.” Such a device is referred to as a binary or two-state device, and stores one bit of data per memory cell.
A multi-level flash memory cell is implemented by identifying multiple, distinct allowed threshold voltage ranges in order to store multiple bits of data per memory cell. Each distinct threshold voltage range corresponds to a predetermined value for the set of data bits. The specific relationship between the data programmed into the memory cell and the threshold voltage ranges of the memory cell depends upon the data encoding scheme adopted for the memory cells. For example, U.S. Pat. No. 6,222,762 and U.S. Patent Application Publication No. 2004/0255090 both describe various data encoding schemes for multi-state flash memory cells.
A non-volatile storage system is typically in communication with (and sometimes embedded within) a host computing device so that the non-volatile storage system can store data for the host computing device. This data is referred to as host data. In addition to host data, non-volatile storage systems will often store system data associated with the host data. System data is data not provided by the host, and used by the memory system for some aspect of memory system operation. Examples of system data include logical block addresses, time, date, temperature, calibration data, read reference voltages, verify reference voltages, and bit error rate. Other system data can also be stored. In some cases, however, storing system data can reduce the capacity of the system to store host data.